#ifndef BUFFER_H_
#define BUFFER_H_

#include "Key.h"

/*
 * =====================================================================================
 *        Class:  TransTable
 *  Description:  Classe que representa uma tabela de transposição
 * =====================================================================================
 */
class TransTable
{

public:

    /*-----------------------------------------------------------------------------
     *  Constrói a partir de um stream
     *-----------------------------------------------------------------------------*/
    TransTable(istream &in);

    /*-----------------------------------------------------------------------------
     *  Constrói a partir de uma string
     *-----------------------------------------------------------------------------*/
    TransTable(string &in, Key &key);

    /*-----------------------------------------------------------------------------
     *  Buffer contendo uma string para cada coluna de chave
     *-----------------------------------------------------------------------------*/
    string table[KEY_SIZE];

    /*-----------------------------------------------------------------------------
     *  Quantidade de caracteres
     *-----------------------------------------------------------------------------*/
    uint size;

    /*-----------------------------------------------------------------------------
     *  Quantidade de palavras / KEY_SIZE
     *-----------------------------------------------------------------------------*/
    uint div;

    /*-----------------------------------------------------------------------------
     *  Caracteres restantes devido à divisão inteira acima
     *-----------------------------------------------------------------------------*/
    uint left;

};

#endif /* BUFFER_H_ */
